草庐IT

MySQL IF THEN 在 WHERE 子句中

全部标签

sql - 强制 Presto 维护 WHERE 子句的顺序

我正在尝试运行类似于以下查询的内容:SELECT*FROMfooWHEREcardinality(bar)>0ANDbar[1]='...';但是,我收到了查询失败:数组下标越界。我假设这是因为Presto试图通过在检查cardinality(bar)>0之前检查bar[1]='...'来优化查询。有没有办法强制Presto维持子句的顺序? 最佳答案 当我需要时,我已经通过两种方式解决了这个问题。使用theelement_atfunction而不是[]下标符号。element_at在索引超出数组末尾时返回NULL,因此您可以将示例简

hadoop - hive 。不能在 where 子句中引用分区

我创建了一个按日期分区的表。但是不能在where子句中使用partition。这是过程第一步:CREATETABLEnew_table(astring,bstring)PARTITIONEDBY(dtstring);第二步:Insertoverwritetablenew_tablepartition(dt=$date)Selecta,bfrommy_tablewheredt='$date表已创建。Describenew_table;astringbstringdtstring问题:select*fromnew_tablewheredt='$date'返回空集。鉴于select*from

sql - 如何使用配置单元表中的 where 条件查找最后更新的记录 ID

如何统计状态为1的hive表中最新的userId?我们每天都在配置单元中插入增量数据(userId、状态、日期)。配置单元表包含具有不同日期的重复用户标识。所以我尝试了一个查询但得到了错误的结果:selectcount(t1.userID)from(selectuserId,max(date)asdatefromtestgroupbyuserId)t1join(selectuserIdfromtestwherestatus=1)t2ont1.userId=t2.userID;请帮忙。 最佳答案 类似的东西应该可以工作:SELECTT

mysql - Hive 连接多个表和 where 语句

所以我对数据库做过任何事情,所以这可能很容易;但是,如果有人可以帮助我做到这一点,我会发现它非常有帮助(无论是在实践上还是在我自己的知识上)。设置:有3个表如下;表1:userToPizzacol1=用户(一个bigint)col2=pizza(一个bigint)表2:披萨转化率col1=pizza(一个bigint)col2=oven_loc(类型上是string,实际上是int)表3:烤炉col1=oven_loc(一个bigint)col2=fire_loc(一个bigint)现在我要做的是如下:SELECTpizzaFROMuserToPIzzaWHEREuser=1在我拥有所

运行一个在参数基础上的子句条件

我有这样的查询Select*fromtable1wherecol1=trueorcol2=falseorcasewhen@param2thencol3=col4end在哪里投掷错误的最后一个条件Incorrectsyntaxnear'看答案尝试下面的尝试SELECT*FROMTABLE1WHERE(COL1='TRUE'ORCOL2='FALSE'OR(@PARAM2ANDCOL3=COL4))

hadoop - Pig Latin Partition By 子句

PigLatin中的“PartitionBy”子句有什么用?另请提供示例用法。是只允许自定义分区还是允许按列分区? 最佳答案 PigLatin中的“PartitionBy”子句有什么用?这允许您设置您选择的Partitioner。Pig使用默认的HashPartitioner,order和skewjoin除外。但有时您可能希望拥有自己的实现来提高性能。PartitionBy对此有帮助。另请提供示例用法。DATA=LOAD'/inputs/demo.txt'usingPigStorage('')as(no:int,name:chara

hadoop - 在 Hive 中编写带有 where 子句的嵌套 select 语句

我需要在Hive查询的where子句中进行嵌套选择。示例代码片段如下;选择*来自表AwhereTA_timestamp>(selecttimestmpfromTableBwhereid="hourDim")这是可能的还是我在这里做错了什么,因为我在运行上述脚本时遇到错误?!为了进一步详细说明我正在尝试做的事情,有一个cassandra键空间,我发布了带有时间戳的统计信息。定期(例如每小时)使用hive汇总此统计信息,一旦汇总,数据将与相应的小时分开存储。因此,当查询第二次运行(和连续运行)时,查询应该只在新数据上运行(即-timestamp>previous_execution_tim

hadoop - HIVE QUERY SELECT * FROM bookfreq where freq IN (SELECT Max(freq) FROM bookfreq);

我正在编写配置单元查询,因为获取记录具有最大频率值。tablenamebookfreq,havingtwocolumnyear&freqyearfreq19992200041989419905查询:SELECT*FROMbookfreqwherefreqIN(SELECTMax(freq)FROMbookfreq);我遇到了这样的异常FAILED:ParseExceptionline1:38cannotrecognizeinputnear'SELECT''Max''('inexpressionspecification 最佳答案 如

sql - 如何在 HIVE 中使用 "in"和 "having"子句?

我的数据是这样的:col1col2col3AB3AB1AB2CB1我想获取所有包含col3某些行的col1和col2的唯一组。比如,所有包含“2”的col1和col2组。我想做这样的事情:selectcol1,col2fromsometablegroupbycol1,col2havingcol3=1andcol3=2但我希望它只返回在col3中同时具有1和2实例的组。所以,查询后的结果应该是这样的:col1col2AB我如何在HIVE中表达它?谢谢。 最佳答案 我不知道为什么其他人删除了正确然后几乎正确的答案,但我会备份他们的答案。

java - 没有选择子句的 Hadoop 插入

我是Hadoop新手,我需要在表中插入一条记录,当我搜索语法时,插入语句的每个位置都有来自select语句的值。有没有一种方法可以不使用Select语句来插入简单的值?问候,萨提斯。 最佳答案 首先,我猜测我们正在谈论的标签是HIVE。当您真正使用配置单元时,您永远不会有理由一次添加一个条目。我认为最简单的方法是先用您的数据创建一个CSV文件。sample.csvDan,50Dave,20Sam,30然后我们把文件放到hdfs中hadoopfs-copyFromLocal./sample.csv/user/me/sample.csv